podatki <- read.table("/cloud/project/Poglavje 3/Naloga 1/Srčni zastoj.csv", header=TRUE, sep=";", dec=",")
head(podatki)
##   ID Zastoj Starost Spol Aktivnost Kadilec Holesterol Zdravilo
## 1  1      0      52    1         1       0          0        2
## 2  2      1      68    0         1       0          1        0
## 3  3      1      66    1         1       1          0        1
## 4  4      1      70    0         1       0          1        1
## 5  5      0      51    0         0       1          0        2
## 6  6      1      63    0         0       0          0        1

Opis spremenljivk:

podatki$ZastojFaktor <- factor(podatki$Zastoj, 
                               levels = c(0, 1), 
                               labels = c("NE", "DA"))

podatki$SpolFaktor <- factor(podatki$Spol, 
                             levels = c(0, 1),
                             labels = c("M", "Ž"))

podatki$AktivnostFaktor <- factor(podatki$Aktivnost, 
                                   levels = c(0, 1),
                                   labels = c("NE", "DA"))

podatki$KadilecFaktor <- factor(podatki$Kadilec, 
                                levels = c(0, 1),
                                labels = c("NE", "DA"))

podatki$HolesterolFaktor <- factor(podatki$Holesterol, 
                                   levels = c(0, 1),
                                   labels = c("NE", "DA"))

podatki$ZdraviloFaktor <- factor(podatki$Zdravilo, 
                                 levels = c(0, 1, 2),
                                 labels = c("Placebo", "Zdravilo A", "Zdravilo B"))
summary(podatki[ , c(-1, -2, -4, -5, -6, -7, -8)]) #Opisna statistika za izbrane spremenljivke
##     Starost      ZastojFaktor SpolFaktor AktivnostFaktor
##  Min.   :45.00   NE:1168      M:1203     NE:1178        
##  1st Qu.:55.00   DA:1253      Ž:1218     DA:1243        
##  Median :61.00                                          
##  Mean   :61.89                                          
##  3rd Qu.:68.00                                          
##  Max.   :88.00                                          
##  KadilecFaktor HolesterolFaktor    ZdraviloFaktor
##  NE:1942       NE:1460          Placebo   : 731  
##  DA: 479       DA: 961          Zdravilo A: 652  
##                                 Zdravilo B:1038  
##                                                  
##                                                  
## 
fit0 <- glm(ZastojFaktor ~ 1, 
            family = binomial, 
            data = podatki)

summary(fit0)
## 
## Call:
## glm(formula = ZastojFaktor ~ 1, family = binomial, data = podatki)
## 
## Deviance Residuals: 
##    Min      1Q  Median      3Q     Max  
## -1.207  -1.207   1.148   1.148   1.148  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## (Intercept)  0.07025    0.04067   1.727   0.0841 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 3353.2  on 2420  degrees of freedom
## Residual deviance: 3353.2  on 2420  degrees of freedom
## AIC: 3355.2
## 
## Number of Fisher Scoring iterations: 3
exp(cbind(obet = fit0$coefficients, confint.default(fit0)))
##                 obet     2.5 %   97.5 %
## (Intercept) 1.072774 0.9905759 1.161793
head(fitted(fit0)) 
##         1         2         3         4         5         6 
## 0.5175547 0.5175547 0.5175547 0.5175547 0.5175547 0.5175547
fit1 <- glm(ZastojFaktor ~ Starost + SpolFaktor + AktivnostFaktor + KadilecFaktor +  
            HolesterolFaktor,  
            family = binomial, 
            data = podatki)

summary(fit1)
## 
## Call:
## glm(formula = ZastojFaktor ~ Starost + SpolFaktor + AktivnostFaktor + 
##     KadilecFaktor + HolesterolFaktor, family = binomial, data = podatki)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.5945  -1.1681   0.8871   1.1563   1.3701  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept)        -0.963815   0.299098  -3.222 0.001271 ** 
## Starost             0.017071   0.004604   3.708 0.000209 ***
## SpolFaktorŽ        -0.027714   0.082182  -0.337 0.735947    
## AktivnostFaktorDA  -0.193752   0.082344  -2.353 0.018625 *  
## KadilecFaktorDA     0.523178   0.104983   4.983 6.25e-07 ***
## HolesterolFaktorDA -0.025263   0.083929  -0.301 0.763407    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 3353.2  on 2420  degrees of freedom
## Residual deviance: 3307.1  on 2415  degrees of freedom
## AIC: 3319.1
## 
## Number of Fisher Scoring iterations: 4
fit2 <- glm(ZastojFaktor ~ Starost + SpolFaktor + AktivnostFaktor + KadilecFaktor +  
            HolesterolFaktor + ZdraviloFaktor,  
            family = binomial, 
            data = podatki)

summary(fit2)
## 
## Call:
## glm(formula = ZastojFaktor ~ Starost + SpolFaktor + AktivnostFaktor + 
##     KadilecFaktor + HolesterolFaktor + ZdraviloFaktor, family = binomial, 
##     data = podatki)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.6600  -1.1690   0.8789   1.1541   1.4105  
## 
## Coefficients:
##                           Estimate Std. Error z value Pr(>|z|)    
## (Intercept)              -0.840309   0.304078  -2.763 0.005719 ** 
## Starost                   0.017331   0.004621   3.750 0.000177 ***
## SpolFaktorŽ              -0.028637   0.082284  -0.348 0.727825    
## AktivnostFaktorDA        -0.195480   0.082442  -2.371 0.017735 *  
## KadilecFaktorDA           0.523806   0.105126   4.983 6.27e-07 ***
## HolesterolFaktorDA       -0.022019   0.084040  -0.262 0.793317    
## ZdraviloFaktorZdravilo A -0.157124   0.109284  -1.438 0.150503    
## ZdraviloFaktorZdravilo B -0.226464   0.097865  -2.314 0.020665 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 3353.2  on 2420  degrees of freedom
## Residual deviance: 3301.7  on 2413  degrees of freedom
## AIC: 3317.7
## 
## Number of Fisher Scoring iterations: 4
exp(cbind(RO = fit2$coefficients, confint.default(fit2)))
##                                 RO     2.5 %    97.5 %
## (Intercept)              0.4315772 0.2378080 0.7832320
## Starost                  1.0174816 1.0083081 1.0267387
## SpolFaktorŽ              0.9717694 0.8270325 1.1418365
## AktivnostFaktorDA        0.8224399 0.6997279 0.9666720
## KadilecFaktorDA          1.6884413 1.3740505 2.0747665
## HolesterolFaktorDA       0.9782215 0.8296633 1.1533804
## ZdraviloFaktorZdravilo A 0.8545979 0.6898249 1.0587291
## ZdraviloFaktorZdravilo B 0.7973478 0.6581805 0.9659411
podatki$Napoved <- fitted(fit2)
head(podatki)
##   ID Zastoj Starost Spol Aktivnost Kadilec Holesterol Zdravilo
## 1  1      0      52    1         1       0          0        2
## 2  2      1      68    0         1       0          1        0
## 3  3      1      66    1         1       1          0        1
## 4  4      1      70    0         1       0          1        1
## 5  5      0      51    0         0       1          0        2
## 6  6      1      63    0         0       0          0        1
##   ZastojFaktor SpolFaktor AktivnostFaktor KadilecFaktor
## 1           NE          Ž              DA            NE
## 2           DA          M              DA            NE
## 3           DA          Ž              DA            DA
## 4           DA          M              DA            NE
## 5           NE          M              NE            DA
## 6           DA          M              NE            NE
##   HolesterolFaktor ZdraviloFaktor   Napoved
## 1               NE     Zdravilo B 0.4037897
## 2               DA        Placebo 0.5301315
## 3               NE     Zdravilo A 0.6097056
## 4               DA     Zdravilo A 0.4995523
## 5               NE     Zdravilo B 0.5844073
## 6               NE     Zdravilo A 0.5235810
podatki$Uvrstitev <- ifelse(podatki$Napoved < 0.5, "NE", "DA") 

podatki$UvrstitevFaktor <- factor(podatki$Uvrstitev, 
                                  levels = c("NE", "DA"), 
                                  labels = c("NE", "DA"))

razvrst_tabela <- table(podatki$ZastojFaktor, podatki$UvrstitevFaktor) 
razvrst_tabela
##     
##       NE  DA
##   NE 596 572
##   DA 496 757
uvrstitev_fit2 <- (razvrst_tabela[1,1]+razvrst_tabela[2,2])/nrow(podatki) 
uvrstitev_fit2
## [1] 0.55886
library(ggplot2)
ggplot(podatki, aes(x=Napoved, fill=ZastojFaktor))+
  theme_linedraw() +
  geom_histogram(position="fill", binwidth=0.1) +
  scale_fill_grey() +
  geom_vline(xintercept=0.50) +
  labs(fill="Zastoj") +
  ylab("Delež") +
  xlim(0, 1)
## Warning: Removed 14 rows containing missing values (geom_bar).